package bpce.Entry;

import coppeer.cell.Cell;
import coppeer.cell.Entry;

public class PontuaModeloEntry implements Entry {
	
	private static final long serialVersionUID = -3178676239696396425L;
	private boolean propagate = true;
	private String nomeModelo, nomeAutor, nomePontuador, nomeAgente;
	int indice, tipoPontuacao, seqAlteracao;
	private Long data;

	public int getIndice() {
		return indice;
	}

	public void setIndice(int indice) {
		this.indice = indice;
	}

	public String getNomeAgente() {
		return nomeAgente;
	}

	public void setNomeAgente(String nomeAgente) {
		this.nomeAgente = nomeAgente;
	}

	public String getNomeAutor() {
		return nomeAutor;
	}

	public void setNomeAutor(String nomeAutor) {
		this.nomeAutor = nomeAutor;
	}

	public String getNomeModelo() {
		return nomeModelo;
	}

	public void setNomeModelo(String nomeModelo) {
		this.nomeModelo = nomeModelo;
	}

	public String getNomePontuador() {
		return nomePontuador;
	}

	public void setNomePontuador(String nomePontuador) {
		this.nomePontuador = nomePontuador;
	}

	public Long getData() {
		return data;
	}

	public void setData(Long data) {
		this.data = data;
	}

	public int getTipoPontuacao() {
		return tipoPontuacao;
	}

	public void setTipoPontuacao(int tipoPontuacao) {
		this.tipoPontuacao = tipoPontuacao;
	}

	public boolean afterPropagation() {
		return false;
	}

	public boolean beforePropagation() {
		if (propagate){
			propagate = false;
			return true;
		} else return false;
	}

	public Entry generatePropagation(Cell neighbor) {
		return this;
	}

	public long getPropagationLease(Cell neighbor) {
		return 10000;
	}

	public boolean matches(Entry template) {
		try{
			PontuaModeloEntry pme = (PontuaModeloEntry) template;
			
			if (this.nomeAgente.equalsIgnoreCase(pme.getNomeAgente()))
				return false;
			
			return true;
		}
		catch(Exception e){
			return false;
		}
	}

	public int getSeqAlteracao() {
		return seqAlteracao;
	}

	public void setSeqAlteracao(int seqAlteracao) {
		this.seqAlteracao = seqAlteracao;
	}
}
